package jwr.basic;

import java.util.ArrayList;


import java.util.Iterator;

import jwr.model.SungJukVO;

public class J22_Collection {

	public static void main(String[] args) {
		// 컬렉션 프레임워크 다루기
		// ArrayList - 가변크기를 지원하는 배열
		
		// ArrayList
		ArrayList sjdata = new ArrayList();
		// jdk1.5 이전방식으로 코드 작성
		
		// ArrayList에 데에터 추가 (add(내용))
		
		sjdata.add(123);
		sjdata.add('가');
		sjdata.add(987.65);
		sjdata.add("xyz");
		
		// 특정위치에 데이터 추가(add(위치, 내용))
		sjdata.add(2, new SungJukVO("우람", 80, 70, 60));
//		sjdata.add(10, new SungJukVO("우람", 80, 70, 60));  오류!
		// sjdata에는 총 5개의 데이터가 저장 중 따라서 10번째 위치에 데이터추가는 불가
		
		// ArrayList상의 데이터 알아내기 (get(위치))
		System.out.println(sjdata.get(0));
		System.out.println(sjdata.get(2));
		for(int i = 0 ; i < sjdata.size(); i++){
			System.out.println(sjdata.get(i));
		}
		
		// ArrayList에 저장된 데이터 개수 알아내기 (size())
		System.out.println(sjdata.size());
		
		// ArrayList에 저장된 데이터 제거 (remove(위치))
		
		System.out.println(sjdata.get(3));
		sjdata.remove(3);
		System.out.println(sjdata.get(3));
		
		//ArrayList에 저장된 데이터 수정 (set(위치, 값))
		
		System.out.println(sjdata.get(3));
		sjdata.set(3,"abc");
		System.out.println(sjdata.get(3));
		
		// ArrayList의 데이터 찾기(contains(값))
		
		System.out.println(sjdata.contains("abc"));
		System.out.println(sjdata.contains('가'));
		System.out.println(sjdata.contains("xyz"));
		
		// ArrayList의 데이터 찾기(indexOf(값))  데이터가 없으면 -1 반환
		System.out.println(sjdata.indexOf("abc"));
		System.out.println(sjdata.indexOf(123));
		System.out.println(sjdata.indexOf('가'));
		System.out.println(sjdata.indexOf("xyz"));
		// ArrayList의 데이터 모두제거(clear())
		
		sjdata.clear();
		
		// ArrayList의 데이터 찾기(isEmpty(값))  값이 없으면 true
		System.out.println("---------------------------------------");
		System.out.println(sjdata.isEmpty());
		sjdata.add("태희");
		sjdata.add("수지");
		sjdata.add("지현");
		sjdata.add("혜교");
		sjdata.add("지연");
		/*------------------------------------------*/
		System.out.println("---------------------------------------");
		// ArrayList 상의 모든 데이터 출력(1)
		for(int i = 0 ; i < sjdata.size(); i++){
			System.out.println(sjdata.get(i));
		}
		// ArrayList 상의 모든 데이터 출력(2)
		// Iterator 인터페이스를 이용하면
		// 편리하게 collection의 요소들을 처리할 수 있음
		System.out.println("---------------------------------------");
		Iterator i = sjdata.iterator();
		StringBuilder tmp = new StringBuilder();
		while(i.hasNext()){
//			tmp.append(i.next()+" ");
			System.out.print(i.next()+" ");
		}
//		System.out.println(tmp.toString());
		
	}

}
